//package com.yc.springmvc.web;
//
//import com.yc.springmvc.entity.User;
//import jakarta.servlet.http.HttpServletRequest;
//import jakarta.servlet.http.HttpServletResponse;
//import jakarta.servlet.http.HttpSession;
//import org.springframework.web.bind.annotation.*;
//import org.springframework.web.servlet.ModelAndView;
//
//import java.util.Map;
//
//@RestController
//public class IndexAction {
//    @RequestMapping("hello")
//    public String hello(){
//        return "hello world";
//    }
//
//    @RequestMapping("indexJsp")
//    public ModelAndView indexJsp(){
//        ModelAndView mav = new ModelAndView();
//        // 请求转发(默认) 可以跳转到 WEB-INF 目录下的资源
//        mav.setViewName("forward:/WEB-INF/demo/index.jsp");
//        return mav;
//    }
//
//    // GetMapping
//    @RequestMapping(value = "get", method = RequestMethod.GET)
//    public String get(){
//        return "get method";
//    }
//
//    @PostMapping(value = "post")
//    public String post(){
//        return "post method";
//    }
//
//    @RequestMapping(path="add", params = {"a", "b=100"})
//    public int add(@RequestParam("x") Integer a,
//                   @RequestParam(value = "y", defaultValue = "100") Integer b){
//        return a+b;
//    }
//
//    @GetMapping(path="header", headers = "Host=localhost:8080")
//    public String header(){
//        return "header";
//    }
//
//    @RequestMapping("user")
//    public User user(User user){
//        return user;
//    }
//
//
//    @GetMapping("servlet")
//    public String servletObject(HttpServletRequest request,
//                             HttpServletResponse response,
//                             HttpSession session){
//        return Map.of("request",request,
//                "response",response,
//                "session",session).toString();
//    }
//
//    @GetMapping("path/{name}/{age}")
//    public Map pathVariable(@PathVariable("name") String name,
//                               @PathVariable("age") int age,
//                               // request.getHeader("Host")
//                               @RequestHeader("Host") String Host,
//                               @RequestHeader("Accept") String apt,
//                               @CookieValue(name="myname",defaultValue = "John") String myname){
//        return Map.of("name",name,
//                "age",age,
//                "Host",Host,
//                "Accept",apt,
//                "myname",myname);
//    }
//
//    @PostMapping("body")
//    public String requestBody(@RequestBody String body){
//        return body;
//    }
//
//    // 接收json字符串
//    // axios.post("user1",{name:"张三",age:18})
//    @PostMapping("user1")
//    public User user1(@RequestBody User user){
//        return user;
//    }
//
//    @GetMapping("addSession")
//    public String setSessionData(HttpSession session,
//                                 @RequestParam("value") String value){
//        session.setAttribute("abc",value);
//        return "ok";
//    }
//
//    @GetMapping("getSession")
//    public String getSession(@SessionAttribute("abc") String value){
//        return value;
//    }
//
//    // SpringMVC 会自动注入一个 ModelAndView mav 对象
//    // 我们可以在方法中直接使用
//    @RequestMapping("toTest")
//    public ModelAndView toTest(ModelAndView mav){
//        mav.setViewName("redirect:test.html");
//        return mav;
//    }
//
//
//}
